Methods and systems for reducing MAC layer handoff latency in wireless networks

ABSTRACT

In accordance with the present invention, computer implemented methods and systems are provided for reducing handoff latency in a wireless network. In response to detecting that a handoff is necessary, the present invention uses a selective scanning algorithm that includes the use of a channel mask and/or a caching algorithm for detecting one or more new access points.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. § 119(e) of U.S.Provisional Patent Application No. 60/549,782, filed Mar. 3, 2004, whichis hereby incorporated by reference herein in its entirety.

FIELD OF THE INVENTION

The present invention generally relates to wireless networks. Moreparticularly, the present invention relates to reducing handoff latencyin a wireless network.

BACKGROUND OF THE INVENTION

With the advent of wireless local area networks (LANs) and mobiledevices, such as personal digital assistants, cellular telephones, andlaptop computers, users can access the Internet, e-mails, files, andapplications from virtually anywhere. Wireless LANs based on the IEEE802.11 standard have become the predominant option for gaining wirelessaccess to the Internet because of their low cost and unregulatedbandwidth.

In recent years, much excitement has developed regarding the prospect ofhaving a mobile device with the capability of the voice over internetprotocol (sometimes referred to herein as “Voice over IP” or “VoIP”) andsimilar applications used over an IEEE 802.11 -based wireless LAN. VoIPallows voice and potentially other multimedia data types to be deliveredbetween two or more parties over a network, such as the Internet, ratherthan traditional telephone lines. Data, whether computer information oraudio data, is sent digitally in packed using the internet protocol.There is a great deal of public interest in this notion of having amobile device that uses a common infrastructure to handle these types ofdata. For example, users are already attempting to make inexpensive longdistance phone calls through the Internet using wireless LAN phones.

VoIP and other applications are problematic, however, due to the latencyof the handoff process that is introduced when a mobile device movesfrom one access point (AP) to another. The handoff process generallyinvolves two logical phases: a discovery phase, which includes handoffinitiation and scanning, and a reauthentication phase, which includesauthentication and association with a new access point. The amount oftime needed to complete this handoff process is a sufficient amount thatit causes broken speech, static, and/or dropped calls during VoIPcommunications.

Several attempts have been made to reduce handoff latency. One solutionhas been proposed that focuses on reducing the reassociation delay byusing a caching mechanism located at the access point. (See, e.s.,Mishra et al., “Context caching using neighbor graphs for fast handoffsin a wireless network,” Computer Science Technical Report CS-TR-4477,University of Maryland, February 2004.) This caching mechanism is basedon the Inter Access Point Protocol (IAPP) and is used to exchange clientcontext information between neighboring access points. The cache in theaccess point is filled using the information contained in IAPPMove-Notify messages or reassociation requests sent to the access pointby mobile devices. By exchanging the client context information with theold access point, the new access point does not require the client tosend its context information in order to reassociate, thereby reducingthe reassociation delay.

Another solution has been proposed that focuses on the 802.11authentication process. (See, es., S. Pack et al., “Fast inter-APhandoff using predictive authentication scheme in a public wirelessLAN,” in Proc. IEEE Networks 2002 (Joint ICN 2002 and ICWLHN 2002),August 2002.) The authentication process is generally performed afterthe mobile device has already associated with a new access point. TheIEEE 802.11 authentication delay is reduced by using a Frequent HandoffRegion (FHR) selection algorithm that takes into account users' mobilitypatterns, service classes, etc.

However, while these solutions reduce the delay in the reauthenticationphase, the discovery phase, and especially the scanning portion of thediscovery phase, is the most time consuming part of the handoff process.The scanning portion attributes for over 90% of the total handofflatency, while the reassociation time is generally only a fewmilliseconds.

Other solutions have been proposed, such as the use of a selectivescanning algorithm. (See, ej., S. Kim et al., “Selective channelscanning for fast handoff in wireless LAN using neighbor graph,” the2004 International Technical Conference on Circuits/Systems, Computersand Communications (ITC-CSCC2004), Japan, Jul. 6-8, 2004.) However, thisapproach requires the use of neighbor graphs, multiple changes must bemade to the network infrastructure, and IAPP must be used. In addition,this approach defines the scanning delay as the duration taken from thefirst probe request message to the last probe request message. Thisdefinition does not take into account the time needed by the client ormobile device to process the received probe responses. The processingperformed by the client represents a significant portion of the scanningdelay and increases significantly with the number of probe responsesreceived by the mobile device.

Therefore, there is a need in the art for systems and methods forreducing the handoff latency in wireless networks by reducing thescanning time. Accordingly, it is desirable to provide systems andmethods that overcome these and other deficiencies of the prior art.

SUMMARY OF THE INVENTION

In accordance with the present invention, computer-implemented methodsand systems for reducing the handoff latency in a wireless network areprovided. Generally, probe delay is substantially decreased by using aselective scanning algorithm and/or a caching algorithm.

In accordance with some embodiments of the present invention, systemsand methods for reducing handoff latency for a mobile station in awireless network are provided. In response to associating with a firstaccess point, the mobile station stores key information that identifiesthe first access point in a cache located at the mobile station. Inresponse to determining that a handoff is necessary, the mobile stationqueries the cache to determine whether another access point isassociated with the key information.

The mobile station performs a selective scan of the channels at themobile station upon determining that another access point is notassociated with the key information. The selective scan includesaccessing a channel mask that is associated with the mobile station,detecting one or more access points using the channel mask, anddetermining a second access point for association by the mobile stationbased at least in part on the responses from the one or more accesspoints. In some embodiments, the mobile station may determining thesecond access point based at least in part on signal strength,signal-to-noise ratio, distance from the first access point, availablebandwidth, and/or any other suitable parameter.

Upon determining the second access point, the mobile station storesinformation identifying the second access point into the cache, where itis associated with the key information of the first access point. Themobile station may transmit one or more messages to the second accesspoint and associate with the second access point upon receivingpermission from the second access point.

In accordance with some embodiments of the present invention, the mobilestation may determine whether the signal strength of the first accesspoint has decreased below a given threshold value.

In accordance with some embodiments of the present invention, the mobilestation may determine whether the signal-to-noise ratio of the firstaccess point has decreased below a given threshold value.

In accordance with some embodiments of the present invention, the mobilestation may invert the channel mask if the mobile station does notdetect one or more access points using the channel mask and detect oneor more access points using the inverted channel mask.

In accordance with some embodiments of the present invention, the mobilestation may determine whether the channel mask is associated with themobile station and perform a scan of all channels at the mobile stationupon determining that the channel mask is not associated with the mobilestation.

In accordance with some embodiments of the present invention, the mobilestation may transmit one or more requests to the first access point forinformation regarding neighboring access points.

In accordance with some embodiments of the present invention, when thewireless network is an 802.11b wireless network, the mobile station mayadd channel 1, channel 6, and channel 11 to the channel mask. The mobilestation may also remove the channel that is currently being used toconnect to the second access point from the channel mask.

In accordance with some embodiments of the present invention, the mobilestation may configure a timer for accessing the second access point. Insome embodiments, the timer may be set to 6 milliseconds.

There has thus been outlined, rather broadly, the more importantfeatures of the invention in order that the detailed description thereofthat follows may be better understood, and in order that the presentcontribution to the art may be better appreciated. There are, of course,additional features of the invention that will be described hereinafterand which will form the subject matter of the claims appended hereto.

In this respect, before explaining at least one embodiment of theinvention in detail, it is to be understood that the invention is notlimited in its application to the details of construction and to thearrangements of the components set forth in the following description orillustrated in the drawings. The invention is capable of otherembodiments and of being practiced and carried out in various ways.Also, it is to be understood that the phraseology and terminologyemployed herein are for the purpose of description and should not beregarded as limiting.

As such, those skilled in the art will appreciate that the conception,upon which this disclosure is based, may readily be utilized as a basisfor the designing of other structures, methods and systems for carryingout the several purposes of the present invention. It is important,therefore, that the claims be regarded as including such equivalentconstructions insofar as they do not depart from the spirit and scope ofthe present invention.

These together with other objects of the invention, along with thevarious features of novelty which characterize the invention, arepointed out with particularity in the claims annexed to and forming apart of this disclosure. For a better understanding of the invention,its operating advantages and the specific objects attained by its uses,reference should be had to the accompanying drawings and descriptivematter in which there is illustrated preferred embodiments of theinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

Various objects, features, and advantages of the present invention canbe more fully appreciated with reference to the following detaileddescription of the invention when considered in connection with thefollowing drawings, in which like reference numerals identify likeelements.

FIG. 1 is a schematic diagram of an illustrative system 100 suitable forimplementation of an application that reduces handoff latency inaccordance with some embodiments of the present invention.

FIG. 2 shows a simplified illustration of the channel frequencydistribution in the IEEE 802.11b standard.

FIG. 3 shows a simplified illustration of the handoff process usingactive scanning.

FIGS. 4A and 4B are illustrative graphs that shows the handoff time inthe IEEE 802.11b standard and the IEEE 802.11a standard, respectively.

FIGS. 5 and 6 are simplified flowcharts illustrating the steps performedin reassociating with a new access point in accordance with someembodiments of the present invention.

FIG. 7 is a simplified flowchart illustrating the steps performed inusing a cache to reduce handoff latency in accordance with someembodiments of the present invention.

FIG. 8 shows the total handoff time using the selective scanningalgorithm and/or caching algorithm in accordance with some embodimentsof the present invention.

FIGS. 9 and 10 show the measured packet loss in a mobile receiver andthe packet delay (in ms) in a mobile sender, respectively, in accordancewith some embodiments of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description includes many specific details. The inclusionof such details is for the purpose of illustration only and should notbe understood to limit the invention. Moreover, certain features whichare well known in the art are not described in detail in order to avoidcomplication of the subject matter of the present invention. Inaddition, it will be understood that features in one embodiment may becombined with features in other embodiments of the invention.

In accordance with the present invention, computer implemented methodsand systems are provided for reducing the total handoff latency in awireless network by significantly decreasing the scanning time.

FIG. 1 is a schematic diagram of an illustrative system 100 suitable forimplementation of an application that reduces handoff latency inaccordance with some embodiments of the present invention. Asillustrated, system 100 may include one or more wireless stations (STA)102. In some embodiments, station 102 may be a device that contains anIEEE 802.11 conformant medium access control (MAC) and physical layer(PHY) interface to the wireless medium. For example, the 802.11functions may be implemented in the hardware and software of a networkinterface card (NIC) that is connected to the wireless station 102.

Alternatively, station 102 may be any device that is capable ofaccessing a wireless network. For example, station 102 may be anysuitable platform (e.g., a personal computer (PC), a two-way pager, awireless terminal, a portable telephone, a portable computer, a palmtopcomputer, an automobile PC, a laptop computer, a personal digitalassistant (PDA), a combined cellular phone and PDA, etc.). Stations 102may be local to each other or remote from each other, and are connectedby one or more communications links to an access point (AP) 104 that islinked via a communications link to a distribution network. Access point104 generally provides access to the distribution services via awireless medium for associated stations 102.

In some embodiments, the handoff procedure is performed by the firmwareor by a HostAP driver. The HostAP driver is a Linux driver for wirelessLAN cards based on Intersil's Prism2/2.5/3 802.11 chipset. Wirelesscards using these chipsets include, for example, the Linksys WPC11PCMCIA card, the Linksys WMP11 PCI card, the ZoornAir 4105 PCMCIA card,and the D-Link DWL-650 PCMCIA card. The HostAP driver supports a commandfor scanning access points, handles the scanning results, and supports acommand for joining to a specific access point. It may also be possibleto disable the firmware handoff by switching to a manual mode andenabling the selective scanning algorithm.

In particular, FIG. 1 shows an infrastructure mode, where access point104 provides connectivity to its associated stations 102 to form a basicservice set (BSS) 106. Basic service set 106 is the basic building blockof an 802.11 wireless LAN and consists of a one or more stations 102controlled by a coordination function. Each wireless LAN isdistinguished from another by a service set identifier (SSID).Accordingly, stations 102 and access points 104 attempting to become apart of a given wireless LAN may use the same SSID of the given wirelessLAN. Wireless stations 102 generally use the SSID to establish andmaintain connectivity with access points 104.

Although FIG. 1 and the following embodiments of the present inventiongenerally relate to the infrastructure mode of the IEEE 802.11 MACspecification, these embodiments are not limited only to theinfrastructure mode. Rather, the invention may also, for example, beapplied to the ad hoc mode, where two or more stations within mutualcommunication range of each other establish a peer-to-peer relationship.In another suitable embodiment, the invention may be applied to othercommunications technologies, such as Bluetooth, etc.

The Institute of Electrical and Electronics Engineers (IEEE) createdspecifications for wireless LANs called the 802.11 standard. In recentyears, the IEEE has expanded on the original standard to include atleast three IEEE 802.11 standards: 820.11a, 802.11b, and 802.11g(collectively referred to herein as “IEEE 802.11” or “IEEE 802.11x”).The IEEE 802.11 standard is hereby incorporated by reference herein inits entirety. Because of the IEEE 802.11 specifications, wireless LANsbased on the IEEE 802.11 standard are the predominant option for gainingwireless access to the Internet.

There are currently three IEEE 802.11 standards: 802.11a, 802.11b, and802.11g. The 802.11a standard operates in the 5 GHz IndustrialScientific, and Medical (ISM) band, and it uses a total of thirty-twochannels of which only eight do not overlap. The 802.11b and 802.11gstandards both operate in the 2.4 GHz ISM band and use eleven of thefourteen possible channels in the United States. Of these elevenchannels, only three do not overlap. While 802.11b may operate up to amaximum rate of 11 Mbit/s, the 802.11g and 802.11a standards may operateup to a maximum rate of 54 Mbit/s. The 802.11g standard isbackwards-compatible with the 802.11b standard, while the 802.11astandard, because of the different ISM band, is not compatible with theother two.

It should be noted that while the number of channels used in the UnitedStates is eleven, these embodiments are not limited only to the IEEE802.11b standard in the United States. For example, most of Europe usesthirteen channels for the 802.11b standard. Any suitable number ofchannels may also be used.

It should also be noted that although the following embodiments of thepresent invention generally relate to the IEEE 802.11b standard, theseembodiments are not limited only to the IEEE 802.11b standard. Rather,the invention may also be applied to the IEEE 802.11a, IEEE 802.11g, anyother suitable IEEE 802.11 standard, or any other suitable wirelesscommunications protocol.

FIG. 2 shows a simplified illustration of the channel frequencydistribution in the IEEE 802.11b standard. As shown in FIG. 2, IEEE802.11b generally defines a channel numbering scheme that allows thestandard to be used in different locations with different radio banddefinitions. To accommodate these differences, IEEE 802.11b defineschannels that occur every 5 MHz, beginning at one half of the bandwidthof the occupied channel above the start of the 2.4 GHz ISM band. Eachbandwidth occupies 22 MHz: 11 MHz above the channel center and 11 MHzbelow the channel center. To comply with the regulations for out-of-bandemissions below 2.4 GHz, IEEE 802.11b includes a 1 MHz guard band at thebottom of the band. Accordingly, starting at 2.4 GHz, channel 1 sits at2.412 GHz (i.e., 2.4 GHz+1 MHz for the guard band+11 MHz for half of theoccupied signal bandwidth). An IEEE 802.11b transmitter that is set atchannel 1 transmits a signal from 2.401 GHz to 2.423 GHz.

It should be noted that any other signal that overlaps any part of thesignal on channel 1 may result in some degree of interference. Tocompletely avoid this overlap, the lower edge of the next IEEE 802.11bsignal must not be below 2.423 GHz. Because each IEEE 802.11b channel islocated every 5 MHz above 2.412 GHz, the next channel that does notoverlap with channel 1 is channel 5, at 2.437 GHz, which occupies theband from 2.426 GHz to 2.448 GHz. Subsequently, channel 9 is the nextchannel above channel 5 without overlap. However, because the use ofchannels 1, 5, and 9 leaves 10 MHz of band unused, the channels arespread out to channels 1, 6 and 11, to completely utilize the band thatis available. Thus, in a well configured wireless network, some or allof the access points will operate on these non-overlapping channels(i.e., channels 1, 6, and 11).

The IEEE 802.11 standard includes management frames that allow stationsto enable and maintain communications with, for example, an access pointwhen operating in an infrastructure or a station when operating in an adhoc network. IEEE 802.11 management frame subtypes include at least, forexample, an authentication frame, an association request frame, anassociation response frame, a reassociation request frame, areassociation response frame, a disassociation frame, a beacon frame, anauthorization frame, a probe request frame, and a probe response frame.

IEEE 802.11 authentication is a process where the access point acceptsor rejects the identity of the station. More particularly, theauthentication process determines whether to establish the identity of astation as a member of the set of stations authorized to associate withanother station. Generally, a station begins the authentication processby sending an authentication frame containing its identity to the accesspoint. With open system authentication (which may be a default setting),the station sends only one authentication frame and the access pointresponds with an authentication frame as a response indicatingacceptance or rejection of the station.

IEEE 802.11 association is a process where the access point allocatesresources for and synchronizes with a station. In particular, theassociation process may establish access point/station mapping andenable station invocation of the distribution system services.Generally, a station begins the association process by sending anassociation request to an access point. This request transmitsinformation about the station (e.g., supported data rates) and the SSIDof the network that the station wishes to associate with. Upon receivingthe association request, the access point determines whether toassociate with the station. If the access point associates with thestation, it reserves space in the memory and generates an associationidentification for the station.

The access point then sends an association response frame that includesan acceptance or rejection notice to the station that is requestingassociation. If the access point accepts the station, the associationresponse frame includes information regarding the association, such asassociation identification and supported data rates. If the outcome ofthe association is positive, the station may utilize the access point tocommunicate with other stations on the network and systems on thedistribution (e.g., Ethernet) side of the access point.

In some embodiments, if a station roams away from the currentlyassociated access point (e.g., such that the beacon signal of thecurrently associated access point decreases below a given threshold or agiven signal strength), the station may attempt to find another accesspoint having a stronger beacon signal. During these attempts to find anew access point, the station may transmit a reassociation frame to thenew access point. The new access point then coordinates the forwardingof data frames that may still be in the buffer of the previous accesspoint waiting for transmission to the station.

The new access point sends a reassociation response frame containing anacceptance or rejection notice to the station requesting reassociation.Similar to the association process, the frame includes informationregarding the association, such as association identification andsupported data rates.

In some embodiments, a station may send a disassociation frame toanother station if it wishes to terminate the existing association. Forexample, a station that is shut down gracefully may send adisassociation frame to alert the access point that the station ispowering off. The access point may then relinquish memory allocationsand remove the station from the association table.

In some embodiments, the access point may send a beacon frame toannounce its presence and relay information, such as timestamp, SSID andother parameters regarding the access point, to stations that are withinrange. The beacon frame may be sent periodically, at predeterminedtimes, or any other suitable time.

In some embodiments, a station may send a probe request frame when itneeds to obtain information from another station. For example, a stationmay send a probe request to one or more stations to determine whichaccess points are within range. In response to receiving the proberequest frame, another station may respond by transmitting a proberesponse frame. The probe response frame may include, for example,capability information, supported data rates, or any other suitableinformation relating to the access points within range.

As described above, these IEEE 802.11 management frames may be usedwhen, for example, a station (e.g., a mobile device) moves from thecoverage area of one access point to the coverage area of another accesspoint (i.e., handoff). The handoff process generally involves exchanginga sequence of messages between the station and one or more access pointsthat are within range of the station. The handoff process is dividedinto two logical steps: discovery and reauthentication.

The discovery process involves the handoff initiation phase and thescanning phase. As a station moves away from the access point that it iscurrently associated with, the signal strength and the signal-to-noiseratio of the signal from the access point decrease. When theseproperties of the signal from the access point fall below a giventhreshold (e.g., a given signal strength, a given signal-to-noise ratio,or any other suitable threshold value), the station initiates a handoff,thereby causing the station to attempt to find other access points thatit may connect to. To find other access points, the station (e.g., amobile device) performs a MAC layer scanning function.

The scanning phase may be performed in passive mode or active mode. Inpassive mode, the station listens to the wireless medium for beaconframe. Beacon frames provide a combination of timing and advertisinginformation to the stations. Using the information obtained from beaconframes, the station may elect to join an access point. During thisscanning mode, the station listens to each channel of the physicalmedium to attempt to locate an access point.

In active mode, the station transmits probe request frames in thewireless medium and processes the received probe responses from theaccess points. The active scan mode generally includes the followingsteps:

-   -   1. Using the normal channel access procedure, Carrier Sense        Multiple Access with Collision Avoidance (CSMA/CA), to gain        control of wireless medium.    -   2. Transmit a probe request frame which contains the broadcast        address as destination.    -   3. Start a probe timer.    -   4. Listen for probe responses.    -   5. If no response has been received by minChannelTime, scan next        channel.    -   6. If one or more responses are received by minChannelTime, stop        accepting probe responses at maxChannelTime and process the        received responses.    -   7. Move to next channel and repeat the above steps 1-6.        After all of the channels have been scanned, the station may        determine which access point to associated with next based at        least in part on the information received from the probe        responses.

The reauthentication process involves authentication and reassociationto the new access point as well as transfer of the station's credentialsand other information from the old access point to the new access point.Authentication is a process by which the access point either accepts orrejects the identity of the station. The station begins the process bysending the authentication frame, authentication request, andinformation the access point of its identity. In response, the accesspoint transmits an authentication response that indicates acceptance orrejection of the station. After successful authentication, the stationsends a reassociation request to the new access point which, inresponse, sends a reassociation response back to the station containingan acceptance or rejection notice.

As shown in FIG. 3 and as described above, during active scanning, thetransmitted messages between the station and the one or more accesspoints may be divided into three types: probe messages, authenticationmessages, and reassociation messages.

Probe messages: Once the station decides to look for other accesspoints, the probing process starts. The station starts sending out proberequests and then processes received probe responses based on the activescanning algorithm, which is described further below. The time involvedin this probing process is called probe delay.

Authentication messages: Once the station decides to join an accesspoint, authentication messages are exchanged between the station and theselected access point. The time consumed by this process is calledauthentication delay.

Reassociation messages: After a successful authentication, the stationsends a reassociation request and expects a reassociation response backfrom the access point. These messages are responsible for thereassociation delay.

FIG. 4 shows that probe delay accounts for at least 90% of the handofflatency when compared to authentication and association.

In accordance with the present invention, in order to reduce the probedelay, the present invention includes at least a selective scanningalgorithm and a caching algorithm. Generally, the probe delay issubstantially decreased by improving the scanning procedure using theselective scanning algorithm. In addition, some embodiments of thepresent invention may include the caching algorithm to minimize the useof the selective scanning algorithm.

FIGS. 5 and 6 are simplified flowcharts illustrating the steps performedin reassociating with a new access point in accordance with someembodiments of the present invention. These are generalized flowcharts.It will be understood that the steps shown in FIGS. 5 and 6 may beperformed in any suitable order, some may be deleted, and others added.

At step 510, the station may determine whether a channel mask isassociated with the station. When a channel mask is not detected, thestation may perform a full scan of all of the channels at step 520. Forexample, the station may send out a probe request on each channel andlisten for responses from access points. It should be noted that, insome embodiments, the full scan may be automatically performed when astation is powered on.

Based on the responses from the access points (e.g., receivinginformation relating to an access point), the station generates achannel mask (step 530). Generally, the station determines the bestaccess points based on, for example, signal strength, signal-to-noiseratio, available bandwidth, or any other suitable parameter. In someembodiments, the channel mask may be set by turning on all of the bitsfor all channels in which a probe request was heard by an access point.Alternatively, the station may turn on the bits in the channel mask fora given number of preferred access points (e.g., the two access pointswith the strongest signal strength, the three closest access points tothe station, etc.).

As described previously, among the 14 possible channels that may be usedin accordance with IEEE 802.11b, only three of those channels do notoverlap (i.e., channels 1, 6, and 11). Accordingly, the bits forchannels 1, 6, and 11 are also set in the channel mask as these channelshave a high probability of being used by access points (step 610).

Using the channel mask, the station searches for a new access point withwhich to reassociate (e.g., the best access point, the access point withthe strongest signal strength from among the scanned access points, theaccess point with the strongest signal-to-noise ration from among thescanned access point, etc.).

If no access points are detected using the channel mask, the station mayinvert the channel mask (step 630). For example, if the 802.11b channelmask is set to scan channels 1, 2, 4, 6, 8, and 11, the inverted channelmask scans channels 3, 5, 7, 9, and 10. At step 640, the invertedchannel mask is used to detect if there are any access points that thestation may connect to. If no access points are detected using theinverted channel mask, the station performs a full scan to generate anew channel mask (e.g., step 520 and 530).

If a new access point is detected and is capable of being connect to bythe station, the station may update the channel mask. For example, thestation may reset the bit corresponding to the channel that the stationis using to connect to the new access point as the probability offinding an adjacent or neighboring access point on the same channel ofthe newly detected access point is low. The bits in the channel mask areadjusted in accordance with the following formula:new channel mask=scanned channels (e.g., step 520 and 530)+channel1+channel 6+channel 11−the current channel.

Upon updating the channel mask, the station sends the appropriatemessages to reassociate with the new access point.

In some embodiments, the station may also include a caching algorithmalong with the selective scanning algorithm. For example, the cachingalgorithm may include a table that uses the MAC address of the currentaccess point as the key, where a list of MAC addresses for connectionwith the station is associated with the key.

FIG. 7 is a simplified flowchart illustrating the steps performed inusing a cache to reduce handoff latency in accordance with someembodiments of the present invention. This is a generalized flow chart.It will be understood that the steps shown in FIG. 7 may be performed inany suitable order, some may be deleted, and others added.

At step 710, when the station associates with an access point, theaccess point is entered into a cache located at the station as a key.For example, the MAC address, IP address, location description, or anyother suitable indicator of the currently associated access point isstored in the cache as a key. Other access points (e.g., next bestaccess point by signal strength, neighboring access points, closestaccess point, best access points by load or congestion, etc.) may beassociated with the currently associated access point by associatinginformation relating to the other access points with the key. When ahandoff is needed because the signal falls below a given threshold(e.g., a given signal strength, a given signal-to-noise ratio, or anyother suitable threshold value), the station determines whether thecache has entries (e.g., access points) corresponding to the key (step720). Entries may include, for example, one or more addresses for thenext best access points, one or more addresses for neighboring accesspoints, etc. For example, the cache may have a size of ten and a widthof two such that it may store ten keys and two access points in thecache list.

If there are no entries associated with the key, the station performsthe selective scanning algorithm (see, e.g., FIGS. 5 and 6). Uponperforming the selective scanning algorithm, the station may associatethe results of the selective scanning algorithm with the current key atstep 725. For example, the selective scanning algorithm may determinethat BESTAP1 and SECONDBESTAP2 are, based on signal strength, the twonext best access points other than the current access point. In responseto this determination, the station associates BESTAP1 and SECONDBESTAP2with the current key related to the current access point. However, anyother suitable number of access points may be determined and related tothe current access point.

Upon finding an entry (e.g., another access point) associated with thecurrent key in the cache, the station may send one or more messages toassociate with a first access point (e.g., AP1) corresponding to theentry (step 730). However, if the station is not successful inassociating with the first access point, the station may check the cachefor another entry and send one or more messages to associate with asecond access point (step 740). It should be noted that while FIG. 7shows that the cache stores the next two best access points based onsignal strength, any suitable number of access points (e.g., MACnumbers) may be stored.

If the station is not successful is associating with the second accesspoint (or after any other suitable number of access points), the stationmay calculate a new channel mask by performing the selective scanningalgorithm (see, e.g., FIGS. 5 and 6) (step 750).

It should be noted that although the cache and the following embodimentsof the present invention generally describe the cache as being populatedby using the selective scanning algorithm, the current key in the cachemay be populated with information relating to access points while thestation is roaming. For example, when the station has detected that itis moving to a certain location (e.g., down a given hallway), thestation may be allowed to receive beacon frames from one or more accesspoints. The beacon frame announces the presence and relay information(e.g., timestamp, SSID, and any other suitable parameters relating tothe access point) of a detected access point. In another suitableembodiment, the station may send a message to the current access pointrequesting that the access point transmit information relating to allneighboring access points (e.g., other access points in the area, otheraccess points with strong signals, etc.) to the station. In response toreceiving such information from the current access point, the stationmay populate the cache with the information. In addition, it may becombined with a positioning algorithm (e.g., a GPS or a WiFi positioningalgorithm) that allows the cache to be populated and refreshed inreal-time based upon the position of the station.

As shown in the flowchart of FIG. 7, the selective scanning algorithmmay not be used if one or more access points associated with the currentaccess point are stored in the cache at the station (cache hit). Usingboth the selective scanning algorithm and the cache algorithm, thestation generally takes less than 5 ms to associate with a new accesspoint. However, when the station attempts to associate with the newaccess point, the firmware generally waits for a substantial amount oftime to determine that the station has failed to associate with the newaccess point (e.g., up to 15 milliseconds). The selective scanningalgorithm and/or the cache algorithm may be configured to set a timerthat expires after, for example, about 6 milliseconds. Accordingly, toreduce this time-to-failure, the timer is configured to override thefirmware. When the timer expires, the station performs a new selectivescan using a new channel mask.

It should be noted that a cache miss does not significantly affect thehandoff latency. As described previously, when a cache miss occurs, thetime-to-failure is generally only 6 ms. For example, if the first cacheentry misses and the second one hits, the additional handoff delay isonly 6 ms. When both cache entries miss, the total handoff delay is 12ms plus the time to execute the selective scanning algorithm.Nevertheless, all of this still resulting in a significant improvementcompared to the original handoff time.

FIG. 8 shows the total handoff time using the selective scanningalgorithm and/or caching algorithm in accordance with some embodimentsof the present invention. As shown in FIG. 8 and in Table 1 below, thetotal handoff was substantially reduced with the use of the selectivescanning algorithm. When the selective scanning algorithm is used, anaverage reduction of 40% in handoff time is obtained. It should be notedthat when the caching algorithm is used along with the selectivescanning algorithm, more than 90% of the handoff time was removed.Experiment 1 2 3 4 5 6 7 8 9 10 avg Original handoff 457 236 434 317 566321 241 364 216 274 343 Selective scanning 140 101 141 141 141 139 14394 142 101 129 Caching 2 2 4 3 4 2 2 2 2 2 3

Another measurement was performed to determine the packet loss duringthe handoff process. To determine the packet loss, user datagramprotocol (UDP) packets were transmitted to and from a station tosimulate voice traffic during the handoff. It should be noted thattransmitting data packets during the handoff process adds to the handoffdelay. In particular, data packets that are transmitted between the lastprobe response and the authentication request add to the handoff delay.However, it should also be noted that this behavior is observed when thestation performing the handoff is the sender. Alternatively, when thestation performing the handoff is the receiver, no such delay isintroduced. FIGS. 9 and 10 show the measured packet loss in a mobilereceiver and the packet delay (in ms) in a mobile sender, respectively,in accordance with some embodiments of the present invention. Experiment1 2 3 4 5 6 7 8 9 10 avg Original 36 55 32 79 37 122 134 32 69 36 63Handoff Selective 88 24 26 19 31 28 46 26 64 18 37 Scanning Cache 16 1514 14 16 15 23 21 15 14 16

Experiment 1 2 3 4 5 6 7 8 9 10 avg Original Handoff 281 229 230 210 209227 185 174 189 168 210 Selective Scanning 185 132 147 131 204 182 164133 151 184 161 Cache 0 0 0 0 0 0 0 0 0 0 0

It should be noted that the selective scanning algorithm is notdependent on the wireless environment. Alternatively, original handoffperformance substantially deteriorates with environment. As shown belowin Table 4, which includes data from an environment without rogue accesspoints, the selective scanning algorithm is consistent, while theoriginal handoff performance still deteriorates with the environment.Handoff Packet loss in Packet time in mobile Handoff delay in mobilereceiver time in mobile sender receiver (num of mobile (num of (ms)packets) sender (ms) packets) Original 182.5 63.2 201.5 210.7 HandoffSelective 102.1 37.0 141.1 161.7 Scanning Cache 4.5 16.3 3.9 0

It will also be understood that the detailed description herein may bepresented in terms of program procedures executed on a computer ornetwork of computers. These procedural descriptions and representationsare the means used by those skilled in the art to most effectivelyconvey the substance of their work to others skilled in the art.

A procedure is here, and generally, conceived to be a self-consistentsequence of steps leading to a desired result. These steps are thoserequiring physical manipulations of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical ormagnetic signals capable of being stored, transferred, combined,compared and otherwise manipulated. It proves convenient at times,principally for reasons of common usage, to refer to these signals asbits, values, elements, symbols, characters, terms, numbers, or thelike. It should be noted, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities.

Further, the manipulations performed are often referred to in terms,such as adding or comparing, which are commonly associated with mentaloperations performed by a human operator. No such capability of a humanoperator is necessary, or desirable in most cases, in any of theoperations described herein which form part of the present invention;the operations are machine operations. Useful machines for performingthe operation of the present invention include general purpose digitalcomputers or similar devices.

The present invention also relates to apparatus for performing theseoperations. This apparatus may be specially constructed for the requiredpurpose or it may comprise a general purpose computer as selectivelyactivated or reconfigured by a computer program stored in the computer.The procedures presented herein are not inherently related to aparticular computer or other apparatus. Various general purpose machinesmay be used with programs written in accordance with the teachingsherein, or it may prove more convenient to construct more specializedapparatus to perform the required method steps. The required structurefor a variety of these machines will appear from the description given.

The system according to the invention may include a general purposecomputer, or a specially programmed special purpose computer. The usermay interact with the system via e.g., a personal computer or over PDA,e.g., the Internet an Intranet, etc. Either of these may be implementedas a distributed computer system rather than a single computer.Similarly, the communications link may be a dedicated link, a modem overa POTS line, the Internet and/or any other method of communicatingbetween computers and/or users. Moreover, the processing could becontrolled by a software program on one or more computer systems orprocessors, or could even be partially or wholly implemented inhardware.

Although a single computer may be used, the system according to one ormore embodiments of the invention is optionally suitably equipped with amultitude or combination of processors or storage devices. For example,the computer may be replaced by, or combined with, any suitableprocessing system operative in accordance with the concepts ofembodiments of the present invention, including sophisticatedcalculators, hand held, laptop/notebook, mini, mainframe and supercomputers, as well as processing system network combinations of thesame. Further, portions of the system may be provided in any appropriateelectronic format, including, for example, provided over a communicationline as electronic signals, provided on CD and/or DVD, provided onoptical disk memory, etc.

Any presently available or future developed computer software languageand/or hardware components can be employed in such embodiments of thepresent invention. For example, at least some of the functionalitymentioned above could be implemented using Visual Basic, C, C++ or anyassembly language appropriate in view of the processor being used. Itcould also be written in an object oriented and/or interpretiveenvironment such as Java and transported to multiple destinations tovarious users.

It is to be understood that the invention is not limited in itsapplication to the details of construction and to the arrangements ofthe components set forth in the following description or illustrated inthe drawings. The invention is capable of other embodiments and of beingpracticed and carried out in various ways. Also, it is to be understoodthat the phraseology and terminology employed herein are for the purposeof description and should not be regarded as limiting.

As such, those skilled in the art will appreciate that the conception,upon which this disclosure is based, may readily be utilized as a basisfor the designing of other structures, methods and systems for carryingout the several purposes of the present invention. It is important,therefore, that the claims be regarded as including such equivalentconstructions insofar as they do not depart from the spirit and scope ofthe present invention.

Although the present invention has been described and illustrated in theforegoing exemplary embodiments, it is understood that the presentdisclosure has been made only by way of example, and that numerouschanges in the details of implementation of the invention may be madewithout departing from the spirit and scope of the invention, which islimited only by the claims which follow.

The following references are incorporated by reference herein in theirentireties:

General characteristics of international telephone connections andinternational circuits. ITU-TG, 114, 1998.

M. S. A. Mishra and W. Arbaugh. An Empirical analysis of the IEEE 802.11MAC Layer Handoff Process. ACM SIGCOMM Computer Communication Review,33(2):93 {102, April 2003.

M. S. A. Mishra and W. Arbaugh. Context caching using neighbor graphsfor fast handoffs in a wireless network. Technical report, University ofMaryland, February 2004.

G. Combs. Ethereal network protocol analyzer.

H.-S. K. et. al. Selective channel scanning for fast handoff in wirelessLAN using neighbor graph. Japan, July 2004. International TechnicalConference on Circuits/Systems, Computer and Communications.

J. Geier. Understanding 802.11 frame types. Technical report,Jupitermedia Corporation, August 2002.

IEEE. IEEE Std. 802.11, Wireless LAN Medium Access Control (MAC) andPhysical (PHY) specifications: High Speed Physical Layer Extension inthe 2.4 GHz Band, 1999.

A. Jain. Handoff delay for 802.11b wireless LANs. Technical report,University of Kentucky, 2003.

M. Kershaw. Kismet wireless network sniffer.

J. Malinen. Host AP driver for intersil prism2/2.5/3.

S. Park and Y. Choi. Fast inter-ap handoff usingpredictive-authentication scheme in a public wireless LAN. Networks2002(Joint ICN 2002 and ICWLHN 2002), August 2002.

S. Park and Y. Choi. Pre-authenticated fast handoff in a public wirelessLAN based on IEEE 802.1x mode. Singapore, October 2002. IFIP TC6Personal Wireless Communications.

1. A method for reducing handoff latency for a mobile station in awireless network, the method comprising: associating with a first accesspoint, wherein key information that identifies the first access point isstored into a cache located at the mobile station; determining whether ahandoff is necessary; querying the cache to determine whether anotheraccess point is associated with the key information in response todetermining that the handoff is necessary; performing a selective scanof channels at the mobile station upon determining that another accesspoint is not associated with the key information, wherein the selectivescan comprises: accessing a channel mask that is associated with themobile station; detecting one or more access points using the channelmask, wherein the mobile station receives one or more responses from theone or more access points; and determining a second access point forassociation by the mobile station based at least in part on theresponses from the one or more access points; storing informationrelating to the second access point into the cache located at the mobilestation, wherein the information identifies the second access point andis associated with the key information; transmitting one or moremessages to the second access point for association with the secondaccess point; and associating with the second access point in responseto receiving an indication from the second access point.
 2. The methodof claim 1, wherein the step of determining whether the handoff isnecessary further comprises determining that the signal strength of thefirst access point has decreased below a given threshold value.
 3. Themethod of claim 1, wherein the step of determining whether the handoffis necessary further comprises determining that the signal-to-noiseratio of the first access point has decreased below a given thresholdvalue.
 4. The method of claim 1, wherein the selective scan furthercomprises: inverting the channel mask if the mobile station does notdetect one or more access points using the channel mask; and detectingone or more access points using the inverted channel mask.
 5. The methodof claim 1, wherein the selective scan further comprises: determiningwhether the channel mask is associated with the mobile station; andperforming a scan of all channels at the mobile station upon determiningthat the channel mask is not associated with the mobile station.
 6. Themethod of claim 1, further comprising transmitting one or more requeststo the first access point for information regarding neighboring accesspoints.
 7. The method of claim 1, wherein the wireless network is an802.11b wireless network, the method further comprising adding channel1, channel 6, and channel 11 to the channel mask.
 8. The method of claim1, further comprising removing the channel that is currently being usedto connect to the second access point from the channel mask.
 9. Themethod of claim 1, wherein the step of determining the second accesspoint based at least in part on the responses from the one or moreaccess points, further comprises determining the second access pointbased on any one of: signal strength, signal-to-noise ratio, distancefrom the first access point, and available bandwidth.
 10. The method ofclaim 1, wherein the key information comprises at least one of: SSID,MAC address, IP address, GPS position information, WiFi information, andlocation information.
 11. The method of claim 1 further comprisingconfiguring the mobile station to set a timer for accessing the secondaccess point.
 12. A method for reducing handoff latency for a mobilestation in a wireless network, the method comprising: associating with afirst access point, wherein key information that identifies the firstaccess point is stored in a cache located at the mobile station;determining whether a handoff is necessary; performing a selective scanof channels at the mobile station in response to determining that thehandoff is necessary, wherein the selective scan comprises: accessing achannel mask that is associated with the mobile station; detecting oneor more access points using the channel mask, wherein the mobile stationreceives one or more responses from the one or more access points; anddetermining a second access point for association by the mobile stationbased at least in part on the responses from the one or more accesspoints; associating with the second access point in response toreceiving an indication from the second access point; and updating thechannel mask to remove the channel that is used to connect to the secondaccess point.
 13. A system for reducing handoff latency for a mobilestation in a wireless network, the system comprising: means forassociating with a first access point, wherein key information thatidentifies the first access point is stored into a cache located at themobile station; means for determining whether a handoff is necessary;means for querying the cache to determine whether another access pointis associated with the key information in response to determining thatthe handoff is necessary; means for performing a selective scan ofchannels at the mobile station upon determining that another accesspoint is not associated with the key information, wherein the selectivescan comprises: means for accessing a channel mask that is associatedwith the mobile station; means for detecting one or more access pointsusing the channel mask, wherein the mobile station receives one or moreresponses from the one or more access points; and means for determininga second access point for association by the mobile station based atleast in part on the responses from the one or more access points; meansfor storing information relating to the second access point into thecache located at the mobile station, wherein the information identifiesthe second access point and is associated with the key information;means for transmitting one or more messages to the second access pointfor association with the second access point; and means for associatingwith the second access point in response to receiving an indication fromthe second access point.
 14. A system for reducing handoff latency for amobile station in a wireless network, the system comprising: means forassociating with a first access point, wherein key information thatidentifies the first access point is stored in a cache located at themobile station; means for determining whether a handoff is necessary;means for performing a selective scan of channels at the mobile stationin response to determining that the handoff is necessary, wherein theselective scan comprises: means for accessing a channel mask that isassociated with the mobile station; means for detecting one or moreaccess points using the channel mask, wherein the mobile stationreceives one or more responses from the one or more access points; andmeans for determining a second access point for association by themobile station based at least in part on the responses from the one ormore access points; means for associating with the second access pointin response to receiving an indication from the second access point; andmeans for updating the channel mask to remove the channel that is usedto connect to the second access point.
 15. A system for reducing handofflatency in a wireless network, the system comprising: a mobile stationthat is associated with a first access point, the mobile stationcomprising: memory; a processor at least partially executing a handoffapplication program configured to: store key information that identifiesthe first access point in a cache located at the mobile station;determine whether a handoff is necessary; query the cache to determinewhether another access point is associated with the key information inresponse to determining that the handoff is necessary; perform aselective scan of channels at the mobile station upon determining thatanother access point is not associated with the key information, whereinprocessor is further configured to: access a channel mask that isassociated with the mobile station; detect one or more access pointsusing the channel mask, wherein the mobile station receives one or moreresponses from the one or more access points; and determine a secondaccess point for association by the mobile station based at least inpart on the responses from the one or more access points; storeinformation relating to the second access point into the cache locatedat the mobile station, wherein the information identifies the secondaccess point and is associated with the key information; transmit one ormore messages to the second access point for association with the secondaccess point; and associate with the second access point in response toreceiving an indication from the second access point.
 16. The system ofclaim 15, wherein the processor is further configured to determine thatthe signal strength of the first access point has decreased below agiven threshold value.
 17. The system of claim 15, wherein the processoris further configured to determine that the signal-to-noise ratio of thefirst access point has decreased below a given threshold value.
 18. Thesystem of claim 15, wherein the processor is further configured to:invert the channel mask if the mobile station does not detect one ormore access points using the channel mask; and detect one or more accesspoints using the inverted channel mask.
 19. The system of claim 15,wherein the processor is further configured to: determine whether thechannel mask is associated with the mobile station; and perform a scanof all channels at the mobile station upon determining that the channelmask is not associated with the mobile station.
 20. The system of claim15, wherein the processor is further configured to transmit one or morerequests to the first access point for information regarding neighboringaccess points.
 21. The system of claim 15, wherein the processor isfurther configured to remove the channel that is currently being used toconnect to the second access point from the channel mask.
 22. The systemof claim 15, wherein the processor is further configured to configurethe mobile station to set a timer for accessing the second access point.23. A system for reducing handoff latency in a wireless network, thesystem comprising: a mobile station that is associated with a firstaccess point, the mobile station comprising: memory; a processor atleast partially executing a handoff application program configured to:store key information that identifies the first access point in a cachelocated at the mobile station; determine whether a handoff is necessary;perform a selective scan of channels at the mobile station in responseto determining that the handoff is necessary, wherein the processor isfurther configured to: access a channel mask that is associated with themobile station; detect one or more access points using the channel mask,wherein the mobile station receives one or more responses from the oneor more access points; and determine a second access point forassociation by the mobile station based at least in part on theresponses from the one or more access points; associate with the secondaccess point in response to receiving an indication from the secondaccess point; and update the channel mask to remove the channel that isused to connect to the second access point.